const obj = {
    id: 1,
    name: "s1"
};

(function () {
    getObjValByKey();
    objOpen();
    arrayRemoveDuplicate();
})()

/**
 * 功能: 使用结构符号{}将对象中的属性拿出来.
 * 说明:
 * - 是为了解决const id = obj.id这种写两遍的写法的.
 */
function getObjValByKey() {
    const {id, name} = obj;
    console.log(id, name);
}

/**
 * 功能: js的对象展开符号.
 * 说明:
 * - 为了解决jquery的$.extend函数.
 */
function objOpen() {
    let b = {
        age: 12,
        id: 2
    };

    // 写在后面的同名属性会覆盖前面的
    let c = {...b, ...obj};
    let d = {...obj, ...b};
    console.log(c);
    console.log(d);
}

/**
 * 功能: 借助展开符号和Set对数组去重.
 */
function arrayRemoveDuplicate() {
    let arr1 = [1, 2, 2, 3];
    let arr2 = [...new Set(arr1)];
    console.log(arr2);
}
